Короче порылся в ХГМ, потыкал, все испробывал, и сам нашел ответ, вот несколько моментов для того, чтобы заработал:
Требуется установленный Warcraft 3: The Frozen Throne последней версии 1.26a. Скачайте нормальный варкрафт 3, а то попадаются урезанные или нерабочие версии. Лучше оригинальную версии приобрести, и обновить. Хотя пиратки тоже неплохи. Вот использую сборкой от R.G. Mechanics
Путь к программе НЕ ДОЛЖЕН содержать русских символов
Совершайте установку в отдельную от Warcraft 3 папку
Рекомендуется приостановить антивирусные программы до установки, потом выполнить установку, затем добавить папку c JNGP в исключения, и потом только снова включить антивирусы. Эта программа вторгается в процесс worldedit.exe, поэтому может считаться вредоносной
Не трогайте файл worldedit121.exe, он должен быть и в папке игры и в папке JNGP
Сначала "Сохранить карту", только потом "Проверка карты", а ещё иногда бывает лучше сохранять пару раз
Выше, это стандартное описание для работы. Если не сработает, пробуем вот, что:
Выставляем оптимальные настройки к JNGP, указанные на скрине (см. ссылку) xgm.guru/forum/showthread.php?t=13118 Обычно, эти настройки должны быть изначально после установки JNGP (ну мало ли пригодятся)
Теперь суть моей проблемы (не знаю, что из этих ниже пунктов сработало, но сработало):
Я установил игру и JNGP на рабочий стол. Потому что на диске С, в папках типа Program Files.(x86) и др. блокирует браундмер. Обычно требует назойливо для работы права администратора, очень раздражает. Но сомневаюсь, что заработало из-за этого. Раньше не мешало нисколько.
Запустить JNGP в режим совместимости. Заходим в свойство exe-шника. Поставил семерку.
Если UMS изначально включен, то выключить его и включить (Enable UMS). Потом перезапустить WE. Скорее всего из-за него.
Из-за UMS также бывают ошибки: могут выскачить 2-3 окна : что отсутствует TriggerClearActions и layerAll. Когда пропускаешь эти окна, просто нажав на ок, затем появляется ошибка с памятью и уже потом закрывается редактор. Происходят такие ошибки, если пытаешься открыть обычным редактором карту, отредактированную в JNGP. Такая ошибка происходит, если некорректно настроен UMS (выкл. потом вкл.). Такая ошибка происходит, если открыть обычным редактором взломанную карту, которая наверняка сделана в UMS и использует необычный jass и прочие преимущества JNGP. Ошибки с UMS могут иногда происходить, поэтому скорее всего пункт 10 поможет
Если UMS перестает работать (некорректно работает), а 10 пункт не помогает. То есть плагин UMS по каким-то причинам не запускается, а JNGP стоит галочка напротив UMS (говорит, что включен). Короче узнать, что он запущен, можно при открытий редактора вместо стандартного окна выскакивает окно UMS. Если не выскакивает, надо попробовать завести снова работать. Плагин может по каким-то причинам сломаться (один раз баловался в настройках JNGP). Пробуйте потом удалить JNGP и потом заново переустановить. Или выкл. и вкл, UMS затем выйти из jngp, удалить и заново переустановить
Короче порылся в ХГМ, потыкал, все испробывал, и сам нашел ответ, вот несколько моментов для того, чтобы заработал:
Требуется установленный Warcraft 3: The Frozen Throne последней версии 1.26a. Скачайте нормальный варкрафт 3, а то попадаются урезанные или нерабочие версии. Лучше оригинальную версии приобрести, и обновить. Хотя пиратки тоже неплохи. Вот использую сборкой от R.G. Mechanics
Путь к программе НЕ ДОЛЖЕН содержать русских символов
Совершайте установку в отдельную от Warcraft 3 папку
Рекомендуется приостановить антивирусные программы до установки, потом выполнить установку, затем добавить папку c JNGP в исключения, и потом только снова включить антивирусы. Эта программа вторгается в процесс worldedit.exe, поэтому может считаться вредоносной
Не трогайте файл worldedit121.exe, он должен быть и в папке игры и в папке JNGP
Сначала "Сохранить карту", только потом "Проверка карты", а ещё иногда бывает лучше сохранять пару раз
Выше, это стандартное описание для работы. Если не сработает, пробуем вот, что:
Выставляем оптимальные настройки к JNGP, указанные на скрине (см. ссылку) xgm.guru/forum/showthread.php?t=13118 Обычно, эти настройки должны быть изначально после установки JNGP (ну мало ли пригодятся)
Теперь суть моей проблемы (не знаю, что из этих ниже пунктов сработало, но сработало):
Я установил игру и JNGP на рабочий стол. Потому что на диске С, в папках типа Program Files.(x86) и др. блокирует браундмер. Обычно требует назойливо для работы права администратора, очень раздражает. Но сомневаюсь, что заработало из-за этого. Раньше не мешало нисколько.
Запустить JNGP в режим совместимости. Заходим в свойство exe-шника. Поставил семерку.
Если UMS изначально включен, то выключить его и включить (Enable UMS). Потом перезапустить WE. Скорее всего из-за него.
Из-за UMS также бывают ошибки: могут выскачить 2-3 окна : что отсутствует TriggerClearActions и layerAll. Когда пропускаешь эти окна, просто нажав на ок, затем появляется ошибка с памятью и уже потом закрывается редактор. Происходят такие ошибки, если пытаешься открыть обычным редактором карту, отредактированную в JNGP. Такая ошибка происходит, если некорректно настроен UMS (выкл. потом вкл.). Такая ошибка происходит, если открыть обычным редактором взломанную карту, которая наверняка сделана в UMS и использует необычный jass и прочие преимущества JNGP. Ошибки с UMS могут иногда происходить, поэтому скорее всего пункт 10 поможет
Если UMS перестает работать (некорректно работает), а 10 пункт не помогает. То есть плагин UMS по каким-то причинам не запускается, а JNGP стоит галочка напротив UMS (говорит, что включен). Короче узнать, что он запущен, можно при открытий редактора вместо стандартного окна выскакивает окно UMS. Если не выскакивает, надо попробовать завести снова работать. Плагин может по каким-то причинам сломаться (один раз баловался в настройках JNGP). Пробуйте потом удалить JNGP и потом заново переустановить. Или выкл. и вкл, UMS затем выйти из jngp, удалить и заново переустановить
Если еще немного покопатса на сайте в разделе декораций - можно нагрести кучу добра!
И вобще мой вам совет - научитесь минимальному моделингу: сможете клепать такие вещи за 3 минуты на коленке с необходимым вам видом, формой и текстурой.
Потому что вы блокируете мультишот. Запрет спеллбука не запрещает способности, находящиеся в нем. Но запрет самих способностей, внезапно, запрещает их.
Это же елементарно, Ватсон.
Открываешь корень карты, оттуда копируешь библиотеки, находишь нужный триггер и копируешь его. Если надо, копируешь юнитов и спелы (всякие дамми и т.д.) И вуаля, башня готова
для начала в пути импорта убери строки war3\imported (как то так)
потом создай триггер
Событие:
Боевая единица - unit приводит способность в действие
Условие:
ability being cast равно "твоё умение"
Действие:
Звук - играть звук на юните (play sound on unit)
Немного непонятная формулировка. Имеется в виду триггерная способность?
Если да, то скопировать в карту триггер (в настройках редактора - добавлять новые переменные автоматически) и саму способность вставить в редакторе объектов (или найти её основу и поменять поля значений).
Ну вылет у тебя на функции, которая занимается отрисовкой графики. Она универсальная, там и частицы обрабатываются, и поверхности. Так что ошибка явно в модели, а какой и как - хрен его знает
Лол. Вопрос можно закрывать. В событии "юнит умирает" я очень редко проверял тип юнита на дамми(а их у меня много). Спасибо отладка, тебя создал господь.
Это лишь минус, чтобы убирать такие декорации, нужно поставить под ними область и триггерно воспроизводить для декораций нужного типа в этой области анимацию death либо hide.
Вот примерно где находится нужное тебе действие:
У стандартных спецэффектов обычно анимации stand-обычное состояние, death-гибель, иногда birth-появление, hide-скрыть, show-показать.
Там вроде 480 на 480 и есть максимум, там UMSWE - снимает лимимы, но такие карты лучше не делать. От одной стомп способности (удар грома, громовая поступь) будет пролаг на секунду, то и больше. Сломается порча. Ну и другие недоразумения, вроде чем больше на карте блокираторов путей - тем ниже производительность.
А кто это говорил? Да, такое написано в статьях, но как это проверяли?
Это снижало нагрузку в 2003 когда у всех были селероны 1.7 возможно это позволяло повысить производительность % на 20, что в реалиях нынешнего железа = 0.002 % если не меньше
Черная область за хп баром вроде свободно скейлится ибо просто черная текстура без анимаций. Изменение размера хп бара тоже вроде не багает (mdlvis нормально воспроизводит). Я так понял, правая грань хп бара привязана к кости, которая движется анимациями. Переведи в .mdl и пролистай на дно, там циферки очевидные :) Это должно покрыть все вопросы.
Сам как то делал тоже такое но в точности не воспроизведу инструкцию
Открываешь карту в MPQ редакторе, ищешь war3map.j, в нём находишь функцию config. Добавляешь строку, написанную мною выше, в начало функции. Единственный аргумент это адрес файла музыки
Почему бы не сделать привязку к классу героя: танки не будут получать очки за исцеление, дд-шеры за полученный урон, а лекари за нанесенный урон. Тем самым, стату можно будет набивать исключительно выполняя свою роль.
Простыми способами никак, только хаками. Для начинающих это будет сложно, проще дать классификацию здания и добавить 150000 хп, и тогда хп не не будет видно с маной так же, но у этого способа много изьянов.
А много ли юнитов будут с хп баром? если серьёзно то решения нет и фрейм не найти этот, оно зашито в недра движка. Но опять таки Disable pre-selection вариант всё таки, если потом отрисовать кастомные хп бары через специальную модель, если она будет эффектом, то это не вызовет никакой доп нагрузки даже у 100 юнитов.
Хоспаде. Вынеси свою лучницу в отдельную карту. У тебя же чёрт ногу сломит.
Не знаю, у меня автокаст нормально перезаряжается. Возможно, дело в основе. Попробуй дать не "Ледяные", а "Огненные стрелы".
Вот. Забыл прикрепить.
А может быть, дело в том, что твоя лучница - "Здание". Честное слово, это три самые замороченные способности у близзард: "Огненные", "Отравленные" и "Ледяные" стрелы. На первый взгляд они одинаковые, но стоит присмотреться... Ух!
Тебе его стрелялка то нужна? Ну изи же, отпрынгул и помахал руками, обычный канал с временем каста и параметром - отключить прочие способности.
Остальное - 4 атаки, ну это изи делаем из даммиков (мне чето приглянулась модель орб атаки маски вампиризма) ну и двигаем их линено от героя в нужную сторону, и ищим по пути врагов, наносим им урон от лица героя + проверяем какие у героя есть абилки и орбы, эмитируем орбы и пассивки, ну манабрейк - сжигаем ману и наносим еще урона, рисуем модель, баш - ну молот бурь в голову, дезоль 0- ну дамик с орбом дезоля.
Сам хотел целиком пангольера слепить, но ка кто забил - нет норм модели.
А группы в массиве CreepsGroup созданы? Нужно либо создавать группы при инициализации, проходясь циклом по массиву, либо в константах указать "размер" массива, и тогда они будут сами созданы. То есть нужно 12 групп -- ставишь размер 12, группы будут созданы в ячейках с 0 по 11.
Ну, Варкрафт 3 в целом не любит когда слишком много юнитов одновременно на экране, а если учитывать, что у них ещё возможно есть и модель, то графическая часть начинает сильно резать фпс, с этим особо ты ничего не сделаешь. По поводу твоего кода, слишком напоминает GUI особенно проверками, ниже как бы я написал, но так как это отрывок и нет пояснения что в целом код должен делать, то я не знаю сколь близко он выполнит твои цели/нужды.
Код
globals
timer gg_timer_Move = null
endglobals
function GetAxisAngle takes real fromX, real fromY, real targX, real targY returns real
return Rad2Deg( Atan2( targY - fromY, targX - fromX ) )
endfunction
function GetAxisDistance takes real castX, real fcastY, real targX, real targY returns real
return SquareRoot( Pow( targX - castX, 2 ) + Pow( fcastY - targY, 2 ) )
endfunction
function NewX takes real locX, real dist, real angle returns real
return locX + dist * Cos( Deg2Rad( angle ) )
endfunction
function NewY takes real locY, real dist, real angle returns real
return locY + dist * Sin( Deg2Rad( angle ) )
endfunction
function Move_GroupActionsHandler takes unit target returns nothing
local integer uid = GetUnitTypeId( target )
local real speed = 8 //скорость движения | Локальные переменные советую писать с маленькой буквы.
local real targX = GetUnitX( target ) // GetWidgetX не быстрее GetUnitX, не нужно этого делать :)
local real targY = GetUnitY( target ) // GetWidgetY не быстрее GetUnitY, не нужно этого делать :)
local real moveX = 0.
local real moveY = 0.
local real angle = 0.
if udg_Time >= 6000 then
if uid >= 'h044' and uid <= 'h046' then
call RemoveUnit( target )
else
call UnitDamageTargetBJ( udg_Caster, target, 2000., ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNKNOWN )
endif
else
if GetAxisDistance( udg_CasterX, udg_CasterY, targX, targY ) <= udg_Time / 10 * 8 then // Сделай один раз враппер и будет проще.
if RAbsBJ( targX ) <= 4000 and RAbsBJ( targY ) <= 4000 then //чтобы не двигал если юнит на краю карты | не нужно каждый раз читать местоположение по-новой.
if not IsUnitType( target, UNIT_TYPE_STRUCTURE ) and target != udg_Caster and target != udg_DummyCaster then
set angle = GetAxisAngle( udg_CasterX, udg_CasterY, targX, targY ) //угол между координатами кастера и коорд юнита | через враппер.
set moveX = NewX( moveX, speed, angle )
set moveY = NewY( moveY, speed, angle ) // В твоей же системе было с минусом, ибо угол считался от кастера, собственно, если нужно отталкивание, но нужен +, если что просто замени на -speed
if not IsTerrainPathable( moveX, moveY, PATHING_TYPE_FLYABILITY ) or uid == 'h045' or uid == 'h046' then // лучше в начале проверить есть ли смысл двигать или нет.
// + RAbsBJ( 50 ) дал бы не совсем правильные результаты, ибо координаты могут быть отрицательными...
if GetTerrainType( moveX, moveY ) != 'Jdrt' then
call SetTerrainType( moveX, moveY, 'Jdrt', -1, 1, 0 ) //если тип земли не изменен на этот, изменить его
endif
call SetUnitX( target, moveX ) //двигаем юнита
call SetUnitY( target, moveY )
endif
endif
endif
endif
endif
endfunction
function Move_GroupActions takes nothing returns nothing //двигаем всех юнитов от точки кастера??
call Move_GroupActionsHandler( GetEnumUnit( ) )
endfunction
function Move_Actions takes nothing returns nothing
local integer i = 0
local integer pid = GetOwningPlayer( udg_Caster )
if udg_Time == 0 then //в начале создаются даммики 45 штук...
loop
exitwhen i == 45
set udg_MoveAngle = i * 8.
set udg_Dummy[ i ] = CreateUnit( Player( pid ), 'h045', udg_CasterX - 200 * Cos( udg_MoveAngle ), udg_CasterY - 200 * Sin( udg_MoveAngle ), udg_MoveAngle )
set i = i + 1
endloop
if udg_Group == null then
set udg_Group = CreateGroup( )
endif
else
if udg_Time <= 6000 then
set i = 0
loop
exitwhen i > bj_MAX_PLAYERS // цикл всех игроков ничем не хуже...
if Player( i ) == PLAYER_SLOT_STATE_PLAYING then
call GroupEnumUnitsOfPlayer( udg_Group, Player( i ), null )
call ForGroup( udg_Group, function Move_GroupActions )
call GroupClear( udg_Group )
endif
set i = i + 1
endloop
else
call PauseUnit( udg_Caster, false )
call PauseTimer( gg_timer_Move )
endif
endif
set udg_Time = udg_Time + 10
endfunction
//===========================================================================
function InitTrig_Move takes nothing returns nothing
set gg_timer_Move = CreateTimer( )
call TimerStart( gg_timer_Move, .01, true, function Move_Actions )
endfunction
Полноценный псевдоконтроль возможен лишь с помощью мемхака.
Прочее же - смотри как сделано в доте, ульт спектры был в опен доте и там есть фищка, атаку то стопить можно но толку мало.
Линейная интерполяция не делает вещи плавнее. Это равномерная интерполяция, линейная, так не движутся "живые" персонажи. За "плавностью" к Безье или Эрмиту. xgm.guru/p/wc3/anims-a-ya-3
А по поводу темы топика - могу обратить внимание автора на:
Менял ли ты структуру исходного скелета, делая новую анимацию (имею ввиду только исходные кости, например, кость головы.)? Если да, то как?
Попробуй посмотреть, что у тебя с интерполяцией для вращения по нужной оси на рутовом объекте.
Вроде бы удалось решить проблему самостоятельно. Ошибка действительно была элементарной - идентификатор не устраивал введённый туда заглавный символ, а я не знал об этом. Простите за беспокойство.
removePositive - позитивный / removeNegative - негативный
magic - магический / physical - физический
timedLife - время жизни (у призываемых существ)
aura - ауры
autoDispel - ??? (скорее всего есть какие-то скилы с баффами отключающие)
Для конкретной проверки есть Unit Has Specific Buff
можно проверять самому. берешь создаешь тестовую карту, создаешь двух юнитов, создаешь триггер с периодической проверкой дебагом и проверяешь у одного из них есть ли бафф. И в игре проверяешь
Возможно это было сделано в старой версии JPNG NG 5d, попробуйте отредактировть этой версией, и найти ту триггерную фу-ию и изменить исп. кастом скрипт, который есть по ссылке, которую предложил факов. Как поменяете, сохраните.
Потом, откройте через JPNG Rebuild, и должно сработать.
Это ошибка возникает из-за несоответствие граф. части триггеров, для GUI посредством одного текстового файлика настройки для WE.
Должно помочь.
Они воспроизводят анимации эффект, смотри в константах. Там они на все виды анимаций расписаны. Короче, это как SetUnitAnimation, но только для эффектов.
Uint32, да даже на ходу, ну именно в моей карте этого не было, но это возможно... на всё том же мемхаке
выгружаем библиотеку из памяти
правим конфиг
снова подгружаем библиотеку
Вуаля хоткей изменен
Но это всё мемхак и только 126 патч
На 131+ есть более крутая фишка, это смена хоткея вообще и смена описания
Только я так и не пойму зачем тебе это.. на мемхаке это всё сложно и не актуально, ибо есть инструменты по круче
Кстати я не замечал в 131, в 132 заметил, что хоткей способности дописывается сам, достаточно его указать лишь в параметрах РО
открываем архивы варика и достаём оттуда из папочки scripts файлы с расширением ai
это и будет аи написанный на jass
далее ты должен разобраться в файлах людей и эльфов и скопировать кусок отвечающий за этот спел из эльфов в хуманов
Так ты же выключаешь триггер на 18 секунд вот он и не срабатывает.
Поставь условие, что герыч не имеет абилки-пустышки, если не имеет - дать её и через 18 сек забрать и пустить молнию.
Правда я не уверен насчёт того, отловится ли attacking unit через 18 сек вейта, проверь...
Вообще, если устраивает орбом - то даёшь "сферу молний" с эффектом "цепь молний", у которой 18 сек перезарядка(у цепи не у сферы)
Ну если делать через орб эффект - у предметов есть способности "сфера замедления" и "сфера молний (новая)". Эти способности позволяют с указанным шансом применять в цель атаки указанный скилл.
Код не повлияет особо на вес кампании. Время можно экономить переделывая одну и ту же карту а не создавая новую (Переделка только ланда и квестовых триггеров) Но если 8 карт готовы - то copy-paste самый простой способ.
Есть еще утилита которая облегчает внедрение обьектов/наработок. Сам не пользовался
Ошибка в коде, jass работает везде. pro100master, пишет бред, ибо незнает что все карты для warcraft 3 имеют сценарий на Jass, т.к все ваши триггеры в итоге преобразуются в jass и хранятся в war3map.j, тоже самое и с АИ, которое для кампаний изначально написано на jass и прекрасно работает.
Смотрите где у вас ошибки, cjass\vjass интерпретаторы могут не верно работать с картами кампаний, пробуйте написать код на чистом jass без надстроек.
KiWave, а вот ии такая штука что хз что ему не хватает, бывает они ломаются и только добывают ресурсы. Тщательно проверь настройки всех зданий и доступны ли они ИИ по ресурсам и требованиям, просто раздай контроль над ИИ себе и сиди смотри за ним.
Zeuz, руна пустышка является предметом а значит хэндлом
надо просто не забывать обнулять переменные
можно ещё удалить её перед обнулением если так хочешь
утечки возникают только при криворукой работе с хэндлами
если так хотите избавится от утечек то лучше почитайте статьи вместо того чтобы строить костыльную меху
VetsaN, таких событий нету
надо записывать все предметы в бд и периодическим таймером отслеживать их состояние
смерть предмета можно отследить с помощью TriggerRegisterDeathEvent но её использование нежелательно
либо делай все предметы юнитами
вот статья про бд
Если квест активен и не выполнен, а убитый - волк, то прибавляем 1 к переменной-счётчику для квеста. Если переменная равна 5, то засчитать выполнение квеста.
В 1.31 можно, по идее, просто триггерно убрать Anss из предмета на время и потом вернуть обратно, вместо жонглирования самими предметами. Мемхак, думаю, так тоже может.
ты отдал приказ перейти атакую противников
он будет идти атакуя всех встретившихся врагов
если враги найдены то он их атакует
если врагов нету то он идёт
если тебе нужно чтобы шли не атакуя врагов то отдай просто приказ "move"
вот пример
проверяем выделен, но есть некоторые вылеты. Нужно выключать/включать тригг на ордер, проверять что умер гер и так далее. у меня от убийства героя вылетает почему-то. еще вылет от не существующего номера игрока (игрок с номером -1 не существует)
Ты хочешь сделать такую механику в своей карте?
Или тебя просто напрягает, что такое есть в 1 доте?
Нужны холодные тесты по идее хайд юнита и короткая неуязвимость ДОЛЖНЫ сбивать очередь приказов, весьма странно, что этого не происходит
есть горячая клавиша отмены. Но это работать должно, если у игрока юнит выделен. И кнопка отмены не заблочена и не спрятана. Горячая клавиша напрямую связана с видимостью клавиши, пробовал прятать кнопку, и тогда также не работает и hotkey
function ForceUICancelBJ takes player whichPlayer returns nothing
if (GetLocalPlayer() == whichPlayer) then
// Use only local code (no net traffic) within this block to avoid desyncs.
call ForceUICancel()
endif
endfunction
xgm.guru/p/wc3/220178если надо, чтобы не бежал строить. Вы уже отдали приказ строить в точку, и нужно сразу же отдать отмену. сразу же отменить можно. Но приказ стоп обычно не срабатывает.
xgm.guru/p/wc3/218129приказ отмены. Идет на апгрейды, тренировку и прочее. Вы может неправильно отлов делаете?
world_editor, я нашёл путь к решению! Правда, есть косяки..
Движение - это тоже способность. А если нажата одна способность, то нельзя нажать применение другой способности. Что это значит? То, что если нажата вторая способность, то первая не нажата. Ставим применение обеих способностей (движение и стоп) в один триггер, разделяя их логической переменной. А изменение значения этой переменной кидаем в триггеры отлова способностей/приказов.
Но вот косяки: из-за периодичности триггера (даже при изменении на 0.03 с.) переменная не успевает сразу поменяться, из-за чего приказ второй способности прожимается несколько раз и слышно щелчки. А если нажать левую кнопку во время движения, она сработает так же, как "Стоп". Нужно каким-то образом поменять значения переменных, но где - пока не могу сообразить, голова не варит уже. Попробуй продолжить самостоятельно.
можешь посмотреть как тут перехватывается урон. хоть я и не рекомендую делать через выдачу неуязвимости, лучше повышать как нибудь максимальное хп если урон выше чем текущее возможное восполнение хп, а затем вернуть обратно как было и провести нужные манипуляции
ПС. Давать спеллбук после найма (чтобы он сам пропадал после морфа) героя нельзя, ибо в этом случае, если герой не успел или не захотел выбрать талант, то у него пропадает такая возможность после морфа.
Делать нужно именно так. И что бы у тебя не было здесь ошибки, тебе нужно каким-либо образом обозначить то, что у героя есть непотраченный талант. Т.е. ты будешь давать герою спеллбук после морфа, если у него есть доступные очки талантов.
И ещё кое-что: если ты триггерно даёшь спеллбук и пермоментишь его (тоже триггерно), то после морфа он не пропадаёт, а если ты его отнимаешь - он не возвращается (т.е. нету лишних ненужных появлений/исчезновений абилки).
А так же смотри что бы спеллбук не остался пустым, решается это пермоментом абилок внутри спеллбука.
NatriY, все магические заклинания, наносящие урон. например можно переделать все стандартные близзардские абилы, где есть урон, на триггерные кастомные абилы. И радуемся). Это рили.
Аура выносливости, меняем её на пустую (у найтсталкера 5 уровней у пассивки, днем всегда 5 уровень и нулевой бонус, а по ночам реальный уровень)
Либо берешь за основу способности без иконки, либо засовываешь её в спеллбук и запрещяешь его для игрока, либо хак на память (лежит в барахолке) и прятать абилку.
ну в принципе нет не обязательно, но удалять можно, хуже не будет - но для того чтобы был какой то толк от этого еще нужно будет сохранить куда то triggerconditon и triggeraction чтобы потом их удалить. Раньше вроде был баг с удалением триггеров (щяс его пофиксили или нет не знаю) но вот писать DestroyTrigger( GetTriggeringTrigger) в самом триггере не лучшая идея, это приводило к каким то багам (сам не видел) но в доте своя система удаления триггеров где они хранятся в запруженными в структуре минуту после удаляются, думаю это не спроста.
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.
Ну вылет у тебя на функции, которая занимается отрисовкой графики. Она универсальная, там и частицы обрабатываются, и поверхности. Так что ошибка явно в модели, а какой и как - хрен его знает
» WarCraft 3 / Проблема с сохранением карты
» WarCraft 3 / Открытие ворот
» WarCraft 3 / Не работает способность
» WarCraft 3 / Как импортировать способности.
» WarCraft 3 / Нагрузка на карту
» WarCraft 3 / Bars
» WarCraft 3 / Система опыта у игроков
» WarCraft 3 / Хп и Мп бар
» WarCraft 3 / Как дать способности перезарядку?
» WarCraft 3 / Не добавляет в группу
» WarCraft 3 / Проблема с Model editor
» WarCraft 3 / Нативки
» WarCraft 3 / Импорт файлов
» WarCraft 3 / Убрать с панели или скрыть.
» WarCraft 3 / Бинд клавиш.
» WarCraft 3 / Провокация
» WarCraft 3 / Пассивная цепь молний
» WarCraft 3 / ИИ для кампании
» WarCraft 3 / Система создания предметов
» WarCraft 3 / Даммикаст предметом
» WarCraft 3 / Области и перемещение между ними
» WarCraft 3 / Отмена приказа
» WarCraft 3 / Отследить получение способности
» WarCraft 3 / Иконки дота 2
» WarCraft 3 / Скажи НЕТ триггерам